package ru.mirent.url;

import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
import java.net.URL;
import java.util.function.Function;

public class UrlCheck implements Function<String, URI> {

    /**
     * Проверка корректности URL.
     * @param url URL для проверки
     * @return преобразованный {@link URI} или исключение об ошибке {@link RuntimeException}
     */
    @Override
    public URI apply(String url) {
        URI uri;
        try {
            // Дополнительное преобразование в класс URL требуется для проверки корректности, т.к. класс
            // URI имеет более широкую спецификацию и в случае неправильно сформированного  URL не обработает ее.
            uri = new URL(url).toURI();
        } catch (MalformedURLException | URISyntaxException e) {
            throw new RuntimeException(e);
        }

        return uri;
    }
}
